const uniID = require('uni-id-common');  // 引入 uniID
const db = uniCloud.database();  // 引入数据库实例

exports.main = async (event, context) => {
  const uniIDIns = uniID.createInstance({ context });
  let body = event;
  if (event.body != undefined) {
  	body = JSON.parse(event.body)
  }

  try {
    // 1. 获取用户的 ID（通过 token 验证身份）
    const { uid } = await uniIDIns.checkToken(body.uniIdToken);
    if (!uid) {
      return { code: 403, msg: '身份验证失败' };  // 如果没有获取到 UID，则返回错误
    }

    // 2. 获取咨询师信息
	const { name, expertise, avatar } = body;
	let experience = Number(body.experience);
	if( isNaN(experience)){
		return { code: 400, msg: 'experience值无效' };
	}
	if (!name || !expertise ) {
	  return { code: 400, msg: '缺少必填字段' };
	}
	//3.检查是否已经存在该咨询师
	 const existingConsultant = await db.collection('consultants')
	      .where({
	        user_id: uid
	      })
	      .get();
	    
	    if (existingConsultant.data && existingConsultant.data.length > 0) {
	      return { code: 409, msg: '该用户已是咨询师，不能重复注册' };
	    }
		
    // 3. 创建咨询师信息
    const createDate = new Date().toISOString();  // 获取当前时间
    const consultantData = {
      user_id: uid,  // 绑定当前用户 ID
      name,
      expertise,
      avatar,
      experience,
      create_date: createDate
    };

    // 4. 向数据库插入数据
    const res = await db.collection('consultants').add(consultantData);

    // 5. 返回结果
    if (res.id) {
      return { code: 0, msg: '咨询师信息注册成功', consultantId: res.id };
    } else {
      return { code: 500, msg: '咨询师信息注册失败' };
    }
  } catch (e) {
    console.error('注册咨询师时发生错误:', e);
    return { code: 404, msg: '服务器错误', detail: e };
  }
};
